package com.xnyzc.lhy.order.service.auth;

import com.xnyzc.lhy.common.entity.Rv;
import com.xnyzc.lhy.order.entity.param.auth.DetectionToken;
import com.xnyzc.lhy.order.entity.param.auth.LoginToken;

import java.util.*;

/**
 * <p>
 *  用户登录认证相关 服务类
 * </p>
 *
 * @author liuju
 * @since 2019-07-22
 */
public interface IOaAuthService {

    /**
     *  乘客端登录
     * @param loginToken
     * @return
     */
    String getLoginTokenByC(LoginToken loginToken);

    /**
     * 司机端登录
     * @param loginToken
     * @return
     */
    Map<String, String> getLoginTokenByD(LoginToken loginToken);

    /**
     * 管理员登录
     * @param loginToken
     * @return
     */
    String getLoginTokenBySys(LoginToken loginToken);

    /**
     * app后台管理员登录获取用户信息
     * @param loginToken
     * @return
     */
    String getLoginTokenBySys2(LoginToken loginToken);
    /**
     * 效验验证码是否正确
     * @param userType
     * @param phone
     * @param code
     * @param tag
     * @param whitelist
     */
    void checkSmsCode(String userType, String phone, String code, String tag, String whitelist);

    /**
     * 判断token是否真实
     * @param detectionToken
     * @return
     */
    String getDetectionToken(DetectionToken detectionToken);

    /**
     * 修改绑定手机号
     *  @param smsCode
     *  @param oldTel
     *  @param newTel
     * @return
     */
    Rv modifyUserPhone(String smsCode, String oldTel, String newTel,String tag);
    /**
     * 修改用户信息
     *  @param map
     * @return
     */
    Rv modifyUserInfo(HashMap<String, String> map);
    /**
     * 用户实名认证信息
     *  @param map
     * @return
     */
    Rv userRealAuth(HashMap<String, String> map);

    /**
     * 添加司机用户反馈信息
     *  @param map
     * @return
     */
    Rv addFeedBack(HashMap<String, String> map);
}
